import pandas as pd
import argparse
import os

def process_excel(input_file, output_file, filter_col=None, filter_val=None, drop_cols=None):
    """
    处理Excel文件
    :param input_file: 输入Excel文件路径
    :param output_file: 输出文件路径
    :param filter_col: 筛选列名
    :param filter_val: 筛选值
    :param drop_cols: 要删除的列，用逗号分隔
    """
    try:
        # 读取Excel文件
        print(f"读取文件: {input_file}")
        df = pd.read_excel(input_file)
        
        print(f"原始数据行数: {len(df)}")
        
        # 筛选数据
        if filter_col and filter_val:
            df = df[df[filter_col] == filter_val]
            print(f"筛选后数据行数: {len(df)}")
        
        # 删除指定列
        if drop_cols:
            cols_to_drop = [col.strip() for col in drop_cols.split(',')]
            df = df.drop(columns=cols_to_drop, errors='ignore')
            print(f"已删除列: {cols_to_drop}")
        
        # 保存处理后的数据
        file_ext = os.path.splitext(output_file)[1].lower()
        if file_ext == '.csv':
            df.to_csv(output_file, index=False, encoding='utf-8-sig')
        else:
            df.to_excel(output_file, index=False)
        
        print(f"处理完成，结果已保存到: {output_file}")
        
    except Exception as e:
        print(f"处理失败: {str(e)}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='Excel数据处理脚本')
    parser.add_argument('input', help='输入Excel文件路径')
    parser.add_argument('output', help='输出文件路径（.xlsx或.csv）')
    parser.add_argument('--filter-col', help='筛选列名')
    parser.add_argument('--filter-val', help='筛选值')
    parser.add_argument('--drop-cols', help='要删除的列，用逗号分隔')
    
    args = parser.parse_args()
    
    process_excel(
        input_file=args.input,
        output_file=args.output,
        filter_col=args.filter_col,
        filter_val=args.filter_val,
        drop_cols=args.drop_cols
    )
